package com.eeds.dao;

import com.eeds.common.model.PageInfo;
import com.eeds.common.table.ProReExaminationEntity;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.eeds.model.project.req.ReqGetIntermediateInspectionListVO;
import com.eeds.model.project.req.ReqGetIntermediateInspectionVO;
import com.eeds.model.project.req.ReqGetSceneInvestigationInfoVO;
import com.eeds.model.project.res.ResFileInfoVO;
import com.eeds.model.project.res.ResGetIntermediateInspectionVO;
import com.eeds.model.project.res.ResGetProjectListVO;
import com.eeds.model.project.res.ResGetSceneInvestigationInfoVO;
import com.eeds.model.word.res.ResExaminationVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 检查验收表（中间检查/竣工验收）
 * 
 * @author Flying
 * @email flying_miku@sina.com
 * @date 2019-09-03 20:26:00
 */
@Repository
public interface ProReExaminationDao extends BaseMapper<ProReExaminationEntity> {

    /**
     * 获取检查验收
     * @param reqGetIntermediateInspectionVO
     * @return
     */
    ResGetIntermediateInspectionVO getIntermediateInspectionInfo(@Param("reqGetIntermediateInspectionVO") ReqGetIntermediateInspectionVO reqGetIntermediateInspectionVO);

    /**
     * 获取检查验收资源列表
     * @param reqGetIntermediateInspectionVO
     * @return
     */
    List<ResFileInfoVO> getExaminationResourcesList(@Param("reqGetIntermediateInspectionVO") ReqGetIntermediateInspectionVO reqGetIntermediateInspectionVO,@Param("type") Integer type);

    /**
     * 获取检查验收列表
     * @param pageInfo
     * @param reqGetIntermediateInspectionListVO
     * @return
     */
    List<ResGetProjectListVO> getIntermediateInspectionList(@Param("pageInfo") PageInfo<ResGetProjectListVO> pageInfo,@Param("reqGetIntermediateInspectionListVO") ReqGetIntermediateInspectionListVO reqGetIntermediateInspectionListVO);

    /**
     * 获取检查验收列表
     * @param reqGetIntermediateInspectionListVO
     * @return
     */
    Integer getIntermediateInspectionListTotalCount(@Param("reqGetIntermediateInspectionListVO") ReqGetIntermediateInspectionListVO reqGetIntermediateInspectionListVO);

    /**
     * 获取现场勘查信息
     * @param reqGetSceneInvestigationInfoVO
     * @return
     */
    ResGetSceneInvestigationInfoVO getSceneInvestigationInfo(@Param("reqGetSceneInvestigationInfoVO") ReqGetSceneInvestigationInfoVO reqGetSceneInvestigationInfoVO);

    /**
     * 获取中间检查信息
     * @param idProReExamination
     * @return
     */
    ResExaminationVO getExaminationById(@Param("idProReExamination") Long idProReExamination);
}
